package com.candy.demo5;

import com.candy.jdbcutil.JDBCUtilsConfig;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * 使用QueryRunner类，实现对数据标的
 * inert delete update
 * 调用QueryRunner类的方法update（Connection conn,String sql,Object...prarm）
 * Object...prarm 可变参数，Object类型，SQl语句会出现？占位符
 * 数据库连接对象，自定义的工具类传递
 */

public class QueryRunnerDemo {
    private static Connection conn = JDBCUtilsConfig.getConnextion();

    public static void main(String[] args) throws Exception {
        //insert();
        //update();
        delete();
    }

    /**
     *定义方法，使用QueryR类的方法update将数据表的数据删除
     */

    public static void delete() throws SQLException {
        QueryRunner qr = new QueryRunner();
        String sql = "delete from tb_student where tid=?";
        int row = qr.update(conn,sql,7);
        System.out.println(row);

        /**
         * 判断insert，update，delete执行是否成功
         * 对返回值row判断
         * if（row》0）执行成功
         */

        DbUtils.closeQuietly(conn);
    }
    /**
     *定义方法，使用QueryR类的方法update将数据表的数据修改
     */
    public static void update() throws SQLException {
        //创建QueryRunner类对象
        QueryRunner qr = new QueryRunner();
        //写修改数据的SQl语句
        String sql  ="update tb_student set name=? where tid=?";
        Object[] params = {"大雪",7};
        int row = qr.update(conn,sql,params);
        System.out.println(row);
        DbUtils.closeQuietly(conn);
    }

    /**
     * 定义方法，使用QueryRunner类的方法update向数据表中，添加数据
     */
    public static void insert() throws Exception{
        //创建QueryRunner类对象
        QueryRunner qr = new QueryRunner();
        String sql = "insert into tb_student(tid,name) values(?,?)";
        //将三个？的占位符的实际参数写到数组中
        Object[] params={7,"小雪"};
        //调用QueryRunner类的方法update（）执行sql语句
        int row = qr.update(conn,sql,params);
        System.out.println(row);
        DbUtils.closeQuietly(conn);
    }
}
